package com.clj.handler;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JButton;
import javax.swing.JOptionPane;

import com.clj.service.StudentService_clj;
import com.clj.service.impl.StudentServiceCljImpl_clj;
import com.clj.view.AddStudentView_clj;
import com.clj.view.MainView_clj;
import com.clj.view.UpdateStudentView_clj;

/**
 * Author: Harry Chen
 * Date: 2023/02/24 16:00
 * Description: 主页面一系列按钮的监听器
 */
public class MainViewHandler_clj implements ActionListener {
    private MainView_clj mainViewClj;

    public MainViewHandler_clj(MainView_clj mainViewClj) {
        this.mainViewClj = mainViewClj;
    }

    public void actionPerformed(ActionEvent e) {
        JButton jButton = (JButton) e.getSource();
        String text = jButton.getText();
        if ("增加".equals(text)) {
            new AddStudentView_clj(mainViewClj);
        } else if ("修改".equals(text)) {
            int[] selectedStudentIds = mainViewClj.getSelectedStudentIds();
            if (selectedStudentIds.length != 1) {
                JOptionPane.showMessageDialog(mainViewClj, "一次只能修改一行！");
                return;
            }
            new UpdateStudentView_clj(mainViewClj, selectedStudentIds[0]);
        } else if ("删除".equals(text)) {
            int[] selectedStudentIds = mainViewClj.getSelectedStudentIds();
            if (selectedStudentIds.length == 0) {
                JOptionPane.showMessageDialog(mainViewClj, "请选择要删除的行！");
                return;
            }
            int option = JOptionPane.showConfirmDialog(mainViewClj, "你确认要删除选择的"
                    + selectedStudentIds.length + "行吗？", "确认删除", JOptionPane.YES_NO_OPTION);
            if (option == JOptionPane.YES_OPTION) {//确认
                //执行删除
                StudentService_clj studentServiceClj = new StudentServiceCljImpl_clj();
                boolean deleteResult = studentServiceClj.delete(selectedStudentIds);
                if (deleteResult) {
                    //重新加载表格，添加最新数据
                    mainViewClj.reloadTable();
                } else {
                    JOptionPane.showMessageDialog(mainViewClj, "删除失败");
                }
            }
        } else if ("查询".equals(text)) {
            mainViewClj.setPageNow(1);
            mainViewClj.reloadTable();
        } else if ("上一页".equals(text)) {
            mainViewClj.setPageNow(mainViewClj.getPageNow() - 1);
            mainViewClj.reloadTable();
        } else if ("下一页".equals(text)) {
            mainViewClj.setPageNow(mainViewClj.getPageNow() + 1);
            mainViewClj.reloadTable();
        }
    }
}
